<?php

class ClassStructure_Weaved_Delegator extends ClassStructure_Weaved implements ClassStructure_Delegator {

    /**
     * Class constructer: encapsulates the supplied object and prepares this class
     * with information about the available method signatures.
     *
     * @access public
     * @param object $obj The object to encapsulate and become a base layer.
     * @return object
     */
    public function __construct($obj) {
        parent::__construct($obj);
    }
    
    /**
     * This magic method catches all method invocations intended for the internal 
     * object, and calls invokeMethod to continue execution.
     *
     * @access public
     * @param string $str_method The method name to invoke, intended for the internal object.
     * @param array $arr_parameters The method's parameters, gathered in array format.
     * @return mixed
     */
    public function __call($str_method, $arr_parameters = array()) {
        return $this->delegateMethod($str_method, $arr_parameters);
    }
    
    public function __weaveAdviceBefore($clb_callable, $mix_pointcut, $arr_options = array()) {
        parent::__weaveAdviceBefore($clb_callable, $mix_pointcut, $arr_options);
    }
    
    public function __weaveAdviceAfter($clb_callable, $mix_pointcut, $arr_options = array()) {
        parent::__weaveAdviceAfter($clb_callable, $mix_pointcut, $arr_options);
    }
    
    public function __weaveAdviceOnException($clb_callable, $mix_pointcut, $arr_options = array()) {
        parent::__weaveAdviceOnException($clb_callable, $mix_pointcut, $arr_options);
    }
    
    public function __unweave() {
        parent::__unweave();
    }
       
}

?>
